package cn.itsource.system.annotation;

import org.springframework.web.bind.annotation.RequestMapping;

import java.lang.annotation.*;

/*
    * @Target：表示注解类应该在什么位置，对那一块的数据有效
      - ElementType.METHOD：可以使用在方法上
      - ElementType.TYPE：可以使用在类上
    @Retention：表示注解保留在代码的那个时期
      - RetentionPolicy.SOURCE：源文件阶段有效(.java文件)
      - RetentionPolicy.CLASS：编译阶段有效(.class文件)
      - RetentionPolicy.RUNTIME：JVM运行时期
    @Inherited：表示可以被继承
    @Documented：表示可以被javaDoc工具提取成文档
* */
@Target(ElementType.METHOD) // 当前注解用在方法上面
@Retention(RetentionPolicy.RUNTIME) // 整个生命周期都可以用
@Inherited
@Documented
public @interface PreAuthorize {
    // 对应权限表里的name —— 权限名称
    String name();
    // 对应权限表里的sn —— 权限编号
    String sn();
    // 对应权限表里的descs —— 权限描述（可写可不写）
    String descs() default "";
}
